package loja.fornecedores.teste;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;

import java.util.LinkedList;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import loja.Produto;
import loja.fornecedores.Fornecedor;
import BaseDados.BaseDados;

public class FornecedoresTest {
	
	private static BaseDados bd;
	private static Fornecedor f1, f2;
	private static LinkedList<Produto> gama_produtos1= new LinkedList<Produto>();
	private static LinkedList<Produto> gama_produtos2= new LinkedList<Produto>();
	private static Produto produto1;
	
	//Fornecedor(int cod_fornecedor, String nome, int nIPC,
		//	String morada, String contacto, String cae,
			//LinkedList<Produto> gama_produtos) {
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		produto1= new Produto (1,"chocalate",2.36,"Kilo", "567457");
		bd = new BaseDados();
		f1 = new Fornecedor(1, "Vitor", 35454543, "blablabla","fdgfsg","fgsgfsr",gama_produtos1);
		f2 = new Fornecedor(2, "Susana", 4543543, "blablabla","dfdgs","fgsgfsr",gama_produtos2);
		bd.inserirFornecedor(f1);
		
		
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		System.out.print("END OF TEST");
	}
	
	@Before
	public void setUp() throws Exception {
		System.out.println("setUp()");
	}

	@After
	public void tearDown() throws Exception {
		System.out.println("tearDown()");
	}
	
	@Test
	public final void testFornecedor() {
		assertTrue(bd.getFornecedores().size()>=0);
		assertNotNull(f1);
		Fornecedor f3 = f1;
		assertSame(f1, f3);
	}
	
	@Test
	public final void testGetCod_fornecedor() {
		assertTrue(f2.getCod_fornecedor() == 2);
		assertEquals(f1.getCod_fornecedor(), 1);

	}

	@Test
	public final void testGetNome() {
		assertFalse(f1.getNome() == "Adriana Calcanhoto");
		assertFalse(f1.getNome().charAt(0) == f2.getNome().charAt(0));
	}
	

	@Test
	public final void testGetNIPC() {
		assertFalse(f1.getNIPC() == 5647647);
		assertTrue(f2.getNIPC() == 4543543);
	}
	
	@Test
	public final void testGetMorada() {
		assertFalse(f1.getMorada()=="dgdsgfshfhs");
		assertTrue(f2.getMorada()=="blablabla");
	
	}
	
	public final void testGetContacto(){
		assertFalse(f1.getContacto()== "fgfdhjxs");
		assertTrue(f2.getContacto()=="dfdgs");
	}
	
	public final void testGetCae(){
		assertFalse(f1.getCae()=="fgfdh");
		assertTrue(f2.getCae()=="fgsgfsr");
	}
	
	public final void testGetGamaProdutos(){
		gama_produtos1.add(produto1);
		assertFalse(f2.getGama_produtos()==f1.getGama_produtos());
		assertTrue(f1.getGama_produtos()==gama_produtos1);
		
	}
	
	
	
	
	
	
	
}
